/**
 * @file GridStructs.h
 * @brief 网格数据结构定义
 * 
 * 定义了节点插值所需的基本数据结构，包括：
 * 1. 节点属性(NodeProperty)
 * 2. 计算结果(Result)
 */
#pragma once
#include <vector>
#include "Point3D.h"

/**
 * @brief 节点属性结构
 * 
 * 存储节点的空间位置和S1属性值
 */
struct NodeProperty {
    Point3D point;     ///< 节点空间坐标
    double s1_value;   ///< 节点的S1属性值
};

/**
 * @brief 结果结构
 * 
 * 存储插值计算的结果数据
 */
struct Result {
    int index;         ///< 节点索引
    Point3D point;     ///< 节点空间位置
    double s1_value;   ///< 插值计算的S1值

    /**
     * @brief 比较运算符
     * @param other 另一个结果对象
     * @return 如果当前对象的索引小于other的索引则返回true
     */
    inline bool operator<(const Result& other) const {
        return index < other.index;
    }
}; 